Method for handling redundant switching planes in packet switches and a packet switch for carrying out the method

ABSTRACT

A switch for the transfer of data packets comprises in the conventional way input ports and output ports and parallel switching planes, which are identical to each other. The switch establishes connections between input ports and output ports through the parallel switching planes. In each output port there is for each switching plane and each established connection a buffer accommodating at least one data packet. In the output port there is in addition a logical selection device for selecting data packets from the switch and from the different planes in such a way, that a data packet stream, which is as correct as possible, is obtained from the output port, and it selects in the first place data packets from a switching plane, which is the preferred plane at each instant. The selection device comprises a quality determining unit, which at each occasion determines the preferred plane by means of quality values for each plane. These quality values are determined by means of an evaluation of earlier data packets, which have arrived to the output port.

BACKGROUND OF THE INVENTION

The invention is related to a method for handling parallel andindependent switching planes in a packet switch and a packet switch bymeans of which the method can be performed.

In order that a switch in a network for the transfer of data packets,for instance an ATM-network, will be able to satisfy the requirement ofa high reliability, some form of redundancy is required, that is thatsome parts of the hardware of the switch are made as double or multipleunits, which perform exactly the same operations and operate inparallelity to each other. A common way of providing this redundancy isby means of parallel and independent switching planes.

The transfer of data packets in a packet switch may be incurred witherrors, so that for instance individual data packets disappear, will bewrongly addressed or that bit errors appear in the data packet. Theseerrors can then be detected, when the data packet is to be forwardedfrom the packet switch. If several switching planes are provided, thetask thus is to grasp and forward, at the output port of the packetswitch, only the data packets transferred without errors and alsomonitor that the data packets are forwarded in a correct sequentialorder. In packet networks and particularly ATM-networks it is, to someextent, in addition permitted that data packets are lost or discarded.For instance, the buffers necessary for the handling of the statisticalmultiplexing in a packet switch can be filled, whereafter data packetsarriving to the buffer may be lost. Having a redundancy in the switch,for instance with parallel switching planes, this means that the samedata packet in the different planes is not available at the same time atthe output port of the switch, where the redundancy is terminated, thatis in the connection point of the parallel switching planes.

These different errors can, as has been observed above, be detected whenthe data packets leave the individual switching planes to be forwardedfrom the packet switch. The reliability and the communication qualitycan here be improved and the forwarding made quicker by selecting "thebest switching plane" according to some algorithm, i.e. data packets areselected first from that switching plane which in some respect can beconsidered to have the best communication quality.

A change of the preferred switching plane must in this case be performedin a controlled way such that, due to the possibly varying communicationvelocity on the different planes, data packets are not lost orunnecessarily doubled in such a change of preferred plane.

The European patent application EP-A1 0 381 334 discloses the handlingof asynchronous, redundant digital data messages. Several parallel andequivalent communication channels are each one connected to an ownbuffer. The various data messages which have been received in anarbitrary order are sorted and a majority choice is performed todetermine the channels which have correct data messages.

In the European patent application EP-A1 0 453 607 a packet switch isdisclosed having redundant switching planes. For each output port fromthe switch there is an evaluation unit, which receives data packets fromthe different switching planes and in the common way selects datapackets having no errors but also selects preferably or in the firstplace data packets from that switching plane on which the data packetsare communicated in the most slow way. For each connection there is atthe output side a counter provided for each one of the switching planeswhere the counter for a plane, on which a packet has been correctlytransferred, is increased by a fixed amount and the counters for theother planes are decreased by another smaller amount. The preferredplane from which packets will be chosen in the first place is the planehaving the lowest value in its associated counter.

SUMMARY OF THE INVENTION

It is a purpose of the invention to provide a method and a packet switchaccording to what has been said above having a simple and efficientchoice of a preferred switching plane for accessing those data packetswhich are to be forwarded from the packet switch, permitting that anoutgoing data packet stream is as correct as is possible or reasonable.

It is a further purpose of the invention to provide a method and apacket switch according to what has been said above comprising, in thedetermination of quality of the different switching planes, a detailedevaluation of the stream of data packets passing through the switchallowing an improved choice of a preferred switching plane for accessingthose data packets which are to be forwarded from the packet switch.

According to the invention a method and a packet switch are providedachieving the purposes mentioned. The detailed characteristics and thescope of the invention appear from the appended patent claims.

Thus, statistics are collected for the data packets which have beentransferred on each switching plane. From these statistics at eachinstant that switching plane is determined having the best communicationquality. Data packets are selected in the first place from this planeuntil some other switching plane is judged to be better. The selectionof a switching plane can be performed either for each packetcommunicated through the switch to an output unit or port, for eachestablished connection or on each link between an input unit or port oran output unit or port of the switch unit, where on each link thusgenerally multiple simultaneous connections may be established.

Thus, a switch for the transfer of data packets has input units andoutput units and switching planes which are identical and parallel toeach other. The switch may advantageously be arranged to establishseveral logical connections between input units and output units on theparallel switching planes. In each output port there is, for eachswitching plane and possibly in combination with each input unit or portof the switch or with each established connection, a bufferaccommodating at least one data packet. In the output unit or port thereis a selection device to select from the switch, data packets from thedifferent planes in such a way, that a data packet stream which is ascorrect as possible is obtained from the output port or resembles asclosely as possible the stream of data packets incoming to the switch.The selection device is arranged, in the first place, to select datapackets from one, at each instant preferred switching plane. Furtherthere is a quality determining unit provided at the output port,possibly comprised in the selection device, which at each instant, forinstance when a data packet arrives to the output port, determines thepreferred plane by means of quality values of each plane, which in turnare determined by means of data packets arrived previously to thatoutput port.

Further, it is preferred that the change of a preferred switching planeis not performed until another switching plane has a quality value whichis better or higher than the quality value of the preferred plane andwhich deviates therefrom with an amount which is better or higher than apredetermined value. This will provide a hysteresis in the choice of apreferred switching plane, such that the preferred switching plane isnot changed too often. This may be advantageous since hereby the totaltime consumption of the changes of the preferred switching plane will bereduced.

The currently preferred switching plane can be common to all connectionsor also be specifically or individually determined for each input portto the switch or for each connection.

In the corresponding way the quality value of each plane may be the samefor all connections and input ports or be specifically or individuallydetermined for a considered input port or a considered connection.

In the latter cases then, new quality values for a particular input portor connection and for the switching planes can be determined each timewhen a data packet arrives to the output port from the considered inputport or on the considered connection respectively.

The quality value of particular plane and possibly in combination with aparticular input port or a particular connection is advantageouslydetermined guided by detected errors in data fields within data packetswhich have been transferred earlier to the output port on this plane,possibly only for data packets communicated from the considered inputport or the considered connection respectively. Therefore, there is ateach output port error checking units evaluating check sums in datapackets communicated through the switch.

The quality value of a particular plane and possibly of a particularinput port or connection respectively can advantageously also bedetermined guided by errors in the sequential order of data packetspreviously communicated on this plane to the output port, possibly onlyfor data packets communicated from the considered input port or theconsidered connection respectively. Since normally a sequential numberis added to the data packet in the transfer thereof in a packet switch,the sequential number may be transferred from the buffer at the outputport to the quality determination unit for evaluation of the sequentialcorrectness of the packet.

The quality value of a particular plane and possibly also of aparticular input port or a particular connection respectively canfurther advantageously, by the quality determining unit be changed witha certain amount and in such a direction, that the quality will bebetter or higher for this plane possibly in combination with theconnection, at each time when a correct data packet arrives to theoutput port through this switching plane and possibly from theconsidered input port or belonging to the considered connectionrespectively.

The quality value also for the other planes, possibly in combinationwith the considered input port or the connection respectively, can also,by the quality determining unit be changed with a certain amount and insuch a direction that the quality will be worse or lower for theseplanes possibly only in combination with the input port or theconnection respectively, at each time when a correct data packet,through a switching plane and in the corresponding cases from thecorresponding input port or belonging to the considered connectionrespectively arrives to the output port.

The quality value of a plane possibly in combination with a consideredinput port or connection, can advantageously be changed with a certainamount and in such a direction that the quality will be better or higherfor this plane, possibly in combination with the input port or theconnection respectively, at each time when a data packet, through thisswitching plane and in the corresponding cases from the considered inputport or belonging to the considered connection respectively, arrives ina correct sequential order to the output port.

When only two switching planes are provided, the quality value of eachplane may be substituted by a common quality value. Positive or highvalues for this common quality value can then indicate, that thecommunication is best on a first one of the two switching planes, whilenegative or low values indicate that the communication is best on thesecond switching plane. Hysteresis is then obtained in the correspondingway as above, such that errors in a single data packets not will cause achange of plane.

The selection device can in this case also comprise the qualitydetermining unit and can further, advantageously be divided into oneselection device for the first plane and one selection device for thesecond plane, which will operate substantially independently of eachother and only have access to a common memory, where information isstored in regard of the switching plane which is preferred at eachinstant and the common quality value. Such a division can give a quickerhandling of the data packets in order to obtain a good output stream ofdata packets and it may also, with some modification, be used in themore complicated selection methods described above. The division will,however, become particularly efficient when using a quality value commonto the two planes.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will now be described with reference to the accompanyingdrawings, on which

FIG. 1 is a schematic picture of a switch having parallel switchingplanes,

FIG. 2 is a schematic picture of a switch where all data packets aretaken from only one plane,

FIG. 3 is a schematic picture of a switch, where all data packets from aparticular input port always are taken from only one switching plane,

FIG. 4 schematically shows the handling of a data packet at the arrivalto the packet switch,

FIG. 5 schematically illustrates the handling of data packets at thearrival thereof to an output port of the switch after the transferthrough a switch,

FIG. 6 shows a flow diagram for the choice of active plane,

FIG. 7 shows a flow diagram of a subroutine in the evaluation of thebest plane,

FIG. 8 schematically illustrates an alternative handling of data packetsat an output port,

FIG. 9 schematically illustrates a packet counter utilized in thehandling according to FIG. 8,

FIG. 10 shows the format of a data packet transferred through theswitch,

FIG. 11 shows an alternative format of a data packet having controlinformation for a forced control of the handling at the output port,

FIGS. 12 and 13 illustrate flow diagrams of logical procedures which areperformed at the output port in the embodiment according to FIG. 8without and with respectively, a forced control of the handling of datapackets at the output port,

FIG. 14 shows a flow diagram illustrating the handling of a data packetat the arrival thereof to a packet switch.

DETAILED DESCRIPTION

In FIG. 1 the construction of a packet switch 1 is schematicallyillustrated. The switch 1 comprises inputs at the input side or side A,which are here represented by an input unit or input port 3, and anumber of output ports at the output side or side B, which are hererepresented by an output unit or output port 5. The input unit 3 andoutput unit 5 are connectable by means of logic of the packet switch,that is the logic circuits inside the switch core, wherein electricalconnections or links are established in parallel on n multiple switchingplanes. A data packet which arrives to side A and thus to the input unit3, generates n identical data packets which are forwarded on the nswitching planes, where the communication of these identical datapackets are performed totally independently of each other on thedifferent switching planes. These identical data packets then arrive tothe output unit 5 and therein correctly transferred data packets areselected and a sequence or stream of output data packets is createdhaving a correct sequential order of the different data packets. In theoutput unit 5 thus is selected, in some way, only one of the transferredidentical data packets corresponding to an incoming data packet, whichhas previously arrived to the input unit 3.

In FIG. 2 a switch is illustrated having two switching planes which arenumbered 1, 2, and two input ports 3₁ and 3₂ and an output port 5. Inthe case illustrated here, switching plane No. 1, is active, i.e. aselection procedure present in the output port 5 selects in the firstplace data packets which have been communicated on plane No. 1. This istrue for all data packets independently of the input port, on which theyhave arrived to the switch. This selection method may then be indicatedas "selection per link". The switching plane, which has been determinedto be the best one by means of some election criterion, is set to beactive. This choice procedure can very simply be performed in thelogical circuits of the output unit, but the disadvantage of this"choice per link" naturally is that single errors in a switching plane,for instance at some intermediate point, through which only some datapackets pass, will result in a change of active switching plane in spiteof the fact that this switching plane may give a correct transfer ofother data packets.

Another possibility eliminating this disadvantage is illustrated in FIG.3 for a packet switch 1 having input units 3₁, . . . 3_(n), twoswitching planes having Nos. 1, 2 and output units 5₁, . . . 5_(m). Fora particular considered output unit, for data packets arrived to theswitch at a particular input port 3_(i), in this case data packets areselected in the first place from one of the two planes. This choiceprocedure can be indicated as "choice per path". In order to perform themethod some identification is required of the input port on which thedata packet has arrived to the switch 1. In the case illustrated in theFigure this may be achieved by arranging that in each input port 3₁, . .. 3_(n), the order or logical number 1, . . . , n of the input port isinserted in the data packet or added thereto. This number is then usedby logic circuits in the output port, to which the data packet iscommunicated inside the switch, for the choice of a preferred plane forthe considered input unit, and the number is here also removed from thedata packet. The switching plane 1 can thus be the preferred plane for acertain input and the switching plane 2 for other inputs.

Another possibility for the choice of a preferred redundant plane isgiven by utilizing information, which conventionally already existsinside or in any case will be added to and inserted in a data packetwhen it arrives to an input port of the switch, and which is requiredfor the identification of the data packet. Only this case will beconsidered hereinafter and more specifically the fact is utilized thateach data packet belongs to or is associated with a logic connection.Such a logic connection is established through the whole packetswitching network (not shown in the Figures), and in particular througheach switch 1, when initially a request of the communication ofinformation is received from a terminal (not shown) in the network. Thischoice procedure may then be indicated as "choice per connection". Amodification of the normal procedure at the arrival of the data packetto the switch is thus not required in this case.

In FIG. 4 the handling or processing of the data packets at the incomingside A is schematically illustrated, in a normal transfer through apacket switching network, i.e. after arrival of a packet to an inputunit 3 of a switch 1, before the data packets are issued on theswitching planes, which in the case illustrated here are two. In thefollowing it will also always be assumed that there are only twoswitching planes having the order numbers 1 and 2. In a processing unit7 particular information is generated, redundancy information and/oradministrative information, and it is added to or inserted in a datapacket, before it is transmitted simultaneously into the two switchingplanes Nos. 1 and 2 through a transmission node 9. The generation unit 7stores and reads required information for its operation from a memory 10comprising various data fields.

In FIG. 10 the configuration of the data packets are illustrated, afterthe passage through the generating and processing unit 7. The datapacket thus comprises the proper or real information which is to betransmitted through the whole switching network from a source terminal(not shown) to a destination terminal (not shown) and which is locatedin a field 11, here called "Payload". In addition, the original or realdata packet may contain an initial field 13, here indicated as "Header",which can contain both general and other administrative information inregard of the data packet, such as the address of the destinationterminal, the address of the source terminal, i.e. the origin address,information relating to priority, channel number, etc.

In the unit 7 for the generation of the extra information required forthe transfer of a data packet inside the switch 1 a field 15 is insertedin the data packet containing an internal connection number, called"VPI/VCI", in a field 17 a sequential number, "CSNcell", and two checksums, "IHEC"="Internal Header Error Check" and "PEC"="Payload ErrorCheck". The check sums are found in fields 19 and 21 respectively in thecompleted data packet. The first check sum "IHEC" in the field 19 isthus related in particular to the information comprised in the variousadministrative fields 13, 15, 17 in the complete data packet, while thecheck sum "PEC" in the second field 21 is related particularly to thereal or original information contents of the data packet, "Payload", inthe field 11.

The internal connection number "VPI/VCI" may in the unit 7 be obtainedfrom information of a logical connection to which the data packetbelongs, and this number is unique for each such logical connection. Thesequential number "CSNcell" is taken from a field or register in a tableor list 47 in the memory 10 (see FIG. 4) and indicates in some simpleway, for each logical connection number "VPI/VCI", the sequential orderof data packets in the stream of data packets which is transmitted overthe established logical connection, such that for instance the firstdata packet being sent on a connection is given the sequential number 1,the second one the sequential number 2, etc. Owing to the generallylimited length of the field 17 provided for the sequential number"CSNcell" and since often a very large number of packets are transferredfor each connection, an increasing sequence of sequential numbers willafter some time inevitably achieve the highest number which can beaccommodated in the field 17. Then the sequential numbers are restartedfrom the beginning. The sequential numbers will thus return cyclically,modulo the highest number which can be represented in the field 17. Inthe following such an increasing, consecutive numbering modulo somenumber is supposed to be valid for the sequential numbers "CSNcell".

The connection number "VPI/VCI" in the field 15 can in certain casesalso be inserted in the data packet before arrival of the packet to theswitch 1.

In FIG. 14 a flow diagram is shown for the handling of data packets inthe input unit 3 of the switch 1. The diagram starts in a block 1401 andafter that in a block 1403 it is decided, if a new data packet hasarrived. If it is not the case, the block 1403 is repeated again andagain, until a data packet has arrived to the input unit 3. Then theextra internal information is generated which is necessary for thesimultaneous transmission of the data packet 21 on the multitude ofredundancy planes, as is indicated at 7 in FIG. 4 and in a block 1405 inFIG. 14. It means, as has been indicated above, that the logicalconnection to which the data packet belongs is determined and thecorresponding internal connection number "VPI/VCI" is found orgenerated, that the internal sequential number "CSNcell" of the datapacket is set equal to the next current sequential number "CSNnextA" forthis connection which is taken from a field associated with thisconnection in the list or table 47 (FIG. 4). After that the contents"CSNnextA" in the field in the list 47 is increased to the number of thenext data packet, i.e. in the case treated here generally increased bythe number 1 and considering that the sequence order of the sequentialnumbers is modulo some number. At last in the block 1405 the check sums"IHEC" and "PEC" are calculated, as has been indicated above.

In a block 1409 then these new fields are inserted in the data packet.In a block 1411 the data packet modified hereby is copied, transferredto suitable registers (not shown, associated with the node 9) for thedifferent switching planes and are transmitted on these. The routine isthen terminated and the program flow returns to the block 1403 to decideif any new data packet has arrived to side A.

At the output side or side B of the switch 1, in an output unit 5 thedata packets are processed by a procedure performed by various unitswhich are schematically illustrated in FIG. 5. When data packets havepassed through the interior of the switch unit 1, on the differentswitching planes, the data packets arrive to redundancy terminatingcircuits, i.e. circuits which process the transferred data packets andselect data packets to be forwarded from the output unit 5, such that astream of data packets is forwarded in which the sequential order of theindividual packets is as correct as possible and also the properinformation field in each packet is as correct as possible.

First it is checked by a unit 23, as is indicated in FIG. 5, that theinformation in the data packet has been communicated correctly throughthe switch 1 and in particular that the check sum "IHEC", which isintended for the administrative portion of the data packet, is correct.If this check sum "IHEC" proves to be incorrect, the data packet isdiscarded, as is indicated at 24, since it then can have been given awrong label, wrong addresses, a wrong sequential number, etc. in thecommunication on the corresponding switching plane. Also the check sum"PEC" related to the real information contents of the data packet in thefield "Payload" is calculated and is corrected, if necessary. In apossible correction of this check sum an indication thereof is insertedin the data packet.

However, if the check sum "IHEC" for the administrative fields of thedata packet is correct, the data packet is transferred to a register 25which is configured to store only one data packet. Then a specialprocedure is performed in a selection unit 27 performing a selectionalgorithm, for selection of the register 25 from which the data packetis to be forwarded from the output unit 5 and the entire switch 1. In adetermination of quality values of the planes, which will be describedmore closely hereinafter, the logic selection unit 27 comprises a unit26 for the calculation of these quality values. From the registers 25the selection procedure performed by the selection unit 27 receivesvarious information relating to the stored data packet such as itsconnection number "VPI/VCI" and its sequential number "CSNcell".

The selection unit 27 controls a switching or selecting device 29, whichis connected to the registers 25 to select the data packet therefrom,that is to select data packets from a suitable or preferred switchingplane. By means not described here, data packets which are located in ortaken from the register 25 of this preferred switching plane, aretransferred to a FIFO-type output register 31, in such a way that anoutput stream is obtained which is as correct as possible. The outputregister 31 must be rather large and should be able to accommodateseveral data packets which are ready to be forwarded from the switch 1.The algorithm performed by the unit 27 for selection of data packetsuses among other variables the above mentioned quality values for eachconnection and each plane or only for each plane to elect a planepreferred at each instant.

If it can be presupposed that the copies of the same data packet whichare communicated on the two planes, arrives to the output 5approximately simultaneously, i.e. approximately at the same time arestored in the respective registers 25, no resequencing of thecommunicated data packets or other complicated logic is required forachieving the best possible forwarded sequence of data packets. If forinstance a data packet having a particular sequential number "CSNcell"is not found among the packets transmitted over a particular plane, sucha logic would be able to try to find this packet among the data packetstransmitted on the other plane. It would require a buffer storage forseveral data packets for each plane at the output port. Such a solutionis described in the simultaneous patent application having the title "Amethod for handling redundant switching planes in packet switches and aswitch for carrying out the method", corresponding to the Swedish patentapplication SE A 9300484-4, filed 15 Feb. 1993 in the name of EllemtelUtvecklings AB, which is incorporated herein as a reference. However, inthe selection procedure of data packets as described therein, datapackets are also always selected in the first place from one of theredundant planes. A choice of this preferred plane can be performed inthe way described below.

For the handling at the output side some stored variables are requiredfor each currently established connection. They are stored inappropriate data fields in memories or registers indicated at 28 in FIG.5. For each connection, as specified by the contents of the field"VPI/VCI" in the data packet, there is thus a pointer or indicator"current₋₋ plane" indicating the switching plane preferred at thecurrent instant, from which data packets are taken in the first place.Further, there is, specifically for a considered connection and for eachswitching plane a few variables, comprising a quality value "quality"and a value "CSNexp" for the expected sequential number of the next datapacket which is to arrive to the output side of the switch.

The quality value indicates, founded on the earlier communication ofdata packets, how good the communication is on the switching plane forthe considered connection. As alternatives (these cases are not shown)the quality value can be the same for one switching plane and all activeconnections ("choice per link") or for each connection from a particularinput port ("choice per path") in a manner in line with the discussionabove. In the following it is assumed, for facilitating the description,that a low quality value indicates a good communication while a highquality value indicates a worse communication on the considered plane.

Further, there is a variable "Error₋₋ Last₋₋ Time", also stored in thememory 28 for each combination of connection number and switching plane,which indicates if some error occurred at the reception of a data packetthe last time on this switching plane, preferably in regard of only thisconnection, or as above "per link" or "per path" in other cases (notshown) what would mean that fewer data fields are required in the memory28 for this variable. In the other cases thus the variable would bevalid for reception of packets on this switching plane totally for allactive connections or from only a particular input port respectively.

In the following a procedure for among other things choice of apreferred, best switching plane, performed by the selection unit 27 andin particular by the quality unit 26 will be described with reference toflow diagrams and program sequences written in pseudocode for the casewhere the choice is performed both for each connection and for eachplane. In the following, as above, only two switching planes No. 1 andNo. 2 are assumed to be arranged in the switch 1.

In FIG. 6 a flow diagram is illustrated for the procedure here ofinterest which is performed at the output side of the switch 1, i.e. fora portion of the procedures performed in the selection unit 27 and inparticular the quality unit 26 of FIG. 5. The procedure starts in ablock 401 and then in a block 403 it is determined if any data packethas arrived to either one of the registers 25. If it is decided that itis not the case, the decision is repeated until the reply to thedecision in the block 403 is yes, and then in a block 404 theconnection, i.e. specifically the number in the field "VCI/VPI", isdetermined, to which the received packet belongs, by reading thisinformation through lines shown in FIG. 5, from the correspondingregister 25. Then a decision is performed in a block 405 whether thequality of the currently active or preferred switching plane issufficiently good. If it is not the case, the active plane is changed ina block 407. The condition of the block 405 together with the block 407is apparent from the following short pseudocode routine. "delta" is herea number value providing an hysteresis to the decision of the block 405.

    if quality(current.sub.-- plane)-delta>quality(standby.sub.-- plane)) then change plane

The preferred plane is thus changed in the block 407 only if thecurrently preferred plane (indicated by the variable "current₋₋ plane")has a quality value ("quality"), which is an amount "delta" worse thanthe quality of the other plane (indicated by the variable "standby₋₋plane") (in the general case for more than two redundant planes, not asgood as the quality of each other plane).

After the test of quality in the block 405 and a possible change ofplanes in the block 407 a procedure is performed in a block 409 for themeasurement and evaluation of the quality in regard of sequentialcorrectness of the data packets earlier and now transmitted on the planeon which the received data cell was transferred. This procedure will bemore closely described with reference to the flow diagram of FIG. 7hereinafter. After this, it is rewarded in a block 411 that a correctdata packet has arrived and then the quality value is decremented (alower quality value means as earlier a higher quality of the plane) forthe considered plane by a value "CR" (="Cell Received"), while thequality value of the other switching plane is incremented, i.e. madeworse by the same value "CR". If there would be arranged more than twoswitching planes, the decrement value for the quality value of the planeon which the packet has arrived could suitably differ from the incrementvalue for the other planes, e.g. the latter value can be smaller thanthe decrement value.

After this it is considered in a block 413, whether there is any errorin the data packet field 11 carrying the proper information "Payload",by checking an indication inside the packet if this check sum "PEC",i.e. the check sum related to the field "Payload", has been corrected.If it is true, the quality value is increased (=made worse) with anamount "PE"(="Payload Error"), and it is performed in a block 415. Thenit is checked in a block 417 if the considered data packet has beentransferred to the output FIFO register 31 (FIG. 5) to be forwarded fromthe switch unit 1. If the data packet is a data packet, which thus isforwarded in the output stream of data packets from the switch 1, thequality values of the two switching planes are reduced (=improved) by avalue "CT" (="Cell Transmitted"). After the check in the block 417 andthe possible change of the quality values in the block 419 the handlingprocedure is terminated in a block 421.

Below is given in pseudocode the routine performed in the block 409 inFIG. 6.

    ______________________________________                                        Procedure(csn.sub.-- test)                                                    Begin                                                                          if(CSNcell = CSNexp) then                                                      CSNexp=CSNexp + 1                                                             report(OK)                                                                    if(Error.sub.-- Last.sub.-- Time) then                                         report(intruding cell)                                                        Error.sub.-- Last.sub.-- Time:=false                                         endif                                                                        else                                                                           if(Error.sub.-- Last.sub.-- Time) then                                         if(CSNcell=CSNexp + 1) then                                                    report(single error)                                                         else                                                                           report(double error)                                                         endif                                                                         CSNexp:=CSNcell + 1                                                           Error.sub.-- Last.sub.-- Time:=false                                         else                                                                           if(CSNcell=CSNexp + 1) then                                                    report(lost cell)                                                             CSNexp:=CSNcell + 1                                                          else                                                                           report(single error)                                                          Error.sub.-- Last.sub.-- Time:=true                                          endif                                                                        endif                                                                        endif                                                                        end                                                                           ______________________________________                                    

In FIG. 7 a flow diagram is illustrated corresponding to this routine.The routine starts in a block 501 and thereafter it is asked in a block503 whether the sequence number "CSNcell" of the considered cell isequal to the expected sequential number "CSNexp" of the next datapacket, which, at the output side of the switch 1, is to be received onthis plane for this connection. If it is decided that there is anagreement, i.e. that the data packet arrives in a correct sequentialorder, in a block 501 the value "CSNexp" of the expected sequentialnumber of the next data packet is increased. Then the value "OK" isreported to a unit, not shown, for an evaluation of the connections.After that it is decided in a block 507 if any error has occurred thelast time at the reception of a data packet in this plane, by checkingthe variable "Error₋₋ Last₋₋ Time" mentioned above. If there was anerror the last time, the value "intruding cell" is reported in a block509 to the evaluation unit. After the blocks 507 and 509 the routine isterminated and the program flow is transferred to an end block 511.

If it was decided in the block 503, that the considered data packet doesnot have the correct sequential order, it is decided in a block 513whether an error was present the last time, by testing the variable"Error₋₋ Last₋₋ Time". If there was an error the last time, it isdecided in a block 515 if the sequential number "CSNcell" of theconsidered data packet possibly could be equal to the expectedsequential number "CSNexp" increased by one, i.e. if a single datapacket has been lost. If it is decided to be true, the value "singleerror" is in a block 517 reported to the evaluation unit. If it is notthe case, instead in a block 519 "double error" is reported. After theblocks 517 and 519, in a block 521 the expected sequential number"CSNexp" valid for this connection and this plane is made equal to thesequential number "CSNcell" of the considered data packet increased byone. After this the routine is terminated in the end block 511.

If it was decided in the block 513, that there was no error the previoustime, it is decided in a block 523 if the sequential number "CSNcell" ofthe considered data packet is equal to the expected sequential number"CSNexp" increased by one, i.e. like in the block 515, if a single datapacket has been skipped. If it proves to be the case, in a block 525 thevalue "lost cell" is reported to the evaluation unit and further, theexpected sequential number "CSNexp" is set to be equal to the sequentialnumber "CSNcell" of the considered data packet increased by one. If itwas decided in the block 523 that the sequential number "CSNcell" of theconsidered data packet does not agree with the sequential number of thedata packet after the expected sequential number, in a block 527 thevalue "single error" is reported to the evaluation unit. After theblocks 525 and 527 respectively the routine is terminated in the block511.

The various reported values "OK", "lost cell", "single error", "doubleerror", "intruding cell" can in a not shown evaluation unit be assignedsuitable number values or be evaluated in some other way by means of amore complicated algorithm for the modification of the quality value ofthe considered connection. Below a table is shown indicating the variouspossible cases in regard of the sequential numbers of the received datapackets and the reported values which these various sequences ofsequential numbers will generate according to the pseudo code routineabove and the flow diagram of FIG. 5.

    ______________________________________                                        Sequential Number             Reported                                        (CSNcell)     Situation       Values                                          ______________________________________                                        k   k+1    k+2    k+3   correct       OK, OK, OK                              k   k+2    k+3    k+4   1 lost packet lc, OK, OK                              k   k+2    k+4    k+5   2 lost packets                                                                              lc, lc, OK                              k   k+2    k'     k'+1  1 lost packet, new                                                                          lc, se, OK                                                      sequence                                              k   k'     k+1    k+2   1 incorrect packet                                                                          se, ic, OK                              k   k'     k+2    k+3   1 incorrect packet, 1 lost                                                                  se, se, OK                                                      packet                                                k   k'     k'+1   k'+2  new sequence  se, de, OK                              k   k'     k"     k"+1  1 incorrect packet, new                                                                     se, de, OK                                                      sequence                                              ______________________________________                                    

Here the designations "lc" stand for the value "lost cell", "se" for"single error", "de" for "double error", "ic" for "intruding cell".

In the simplest case the various reported values "lc", "se", "de", "ic"are assigned different number values which are directly added to thequality value. A choice giving a rather good performance of theprocedure can be the following

lc=2

ic=5

se=10

de=100

while the reported value "OK" naturally does not give any change of thequality value, i.e. "OK" is set equal to 0.

The corresponding values for the decrement and increment values "PE"(=Payload Error) and "CT" (=Cell Transmitted) described with referenceto FIG. 6 can be

PE=2

CT=1

and the balancing increment and decrement value "CR" (=Cell Received)may be set equal to 1.

In a simplified procedure, which only can be applied for the case withtwo switching planes, there is only one quality value calculated whichis used to indicate the quality of the two planes and in this case iscalled "Packet₋₋ Counter". The handling of the data packets at theoutput side is in this case illustrated in FIG. 8.

Here it is decided in the units 23 for the testing of check sums of adata packet, whether the check sums "IHEC" and "PEC" are correct andsignals indicating the result of the test are transmitted on lines tologic units 33, one logic unit 33 being provided for each redundancyplane. The registers 25 may in this case accommodate for instancemaximally two data packets and from a data packet stored in a register25 the connection number "VPI/VCI" of the packet is read and transmittedon a line to the corresponding logic unit 33.

The two logic units 33 read data from a common memory 35 correspondingto the memories 28 in FIG. 5. When a logic unit wants to write or readdata from the common memory 35, the logic unit sends a signal on a lineto an access unit 37, which, controlled by suitable synchronizingpulses, monitors that only one logic unit at each instant will haveaccess to the memory 35. In the memory 35, for each connection given bythe number in the field "VPI/VCI", the common quality value "Packet₋₋Counter" is stored and in the shape of a variable "Active₋₋ Plane" anindication of the plane which is currently active. In its other partsthe processing at the output side according to FIG. 8 coincides with theprocessing as illustrated in FIG. 5, except a special function whichwill be described in detail hereinafter.

The common quality value "Packet₋₋ Counter" is illustrated graphicallyin FIG. 9. For each received correct data packet from plane 1 thevariable "Packet counter" is incremented by one unit and for eachreceived data packet from plane 2 the value of "Packet₋₋ Counter" isdecremented one step. Initially the variable "Packet₋₋ Counter" has thevalue zero and it may further for instance be assumed that then packetsare taken from a plane 1. Then perhaps the value of "Packet₋₋ Counter"decreases and thus will have a successively larger negative value. Whenit is lower than a negative threshold value "Threshold₋₋ Plane₋₋ 1",plane 2 will instead be active. After this perhaps again the value of"Packet₋₋ Counter" will increase to be higher than a positive value"Threshold₋₋ Plane₋₋ 2" and then plane 1 will be active again.

The hysteresis is given by the difference of the threshold values"Threshold₋₋ Plane₋₋ 1" and "Threshold₋₋ Plane₋₋ 1", which correspondsto the constant "delta" mentioned above.

In the logic unit 33 for the handling of data packets from plane 1 aprocedure is performed which appears from the following program segmentwritten in pseudocode and is also illustrated in the flow diagram inFIG. 12.

    ______________________________________                                        Process.sub.-- Logic.sub.-- Plane.sub.-- 1                                    Begin                                                                          if(IHEC.sub.-- error) then                                                                         :For an error in                                          "Discard the packet"                                                                              :IHEC the packet is                                                           :always to be                                                                 :discarded.                                              else                                                                           if(Active.sub.-- Plane == 1) then                                                                 :If the plane 1 is                                         "Accept the packet"                                                                              :active, the packet                                                           :is to be allowed to                                                          :pass.                                                    else                :Plane 2 active                                            if(Packet.sub.-- Counter ≧                                                                :Check if change of                                         Threshold.sub.-- Plane.sub.-- 2) then                                                           :plane is to be made                                        "Accept the packet"                                                                             :Change of plane is                                         Active.sub.-- Plane:=1                                                                          :to be performed and                                                          :then the packet is                                                           :allowed to pass.                                          else               :When plane 2 is                                            "Discard the packet"                                                                            :active and a change                                       endif              :is not made, the                                         endif               :packet is discarded.                                     if(PEC.sub.-- error) then                                                      Packet.sub.-- Counter:= Packet.sub.-- Counter                                                    :The packet counter                                       else                :is increased only                                         Packet.sub.-- Counter:=                                                                          :for correct packets.                                       Packet.sub.-- Counter + 1                                                   endif                                                                        endif                                                                        end                                                                           ______________________________________                                    

The corresponding routine for the logic unit 33 for the plane No. 2 isobtained by swapping the plane numbers and by the fact that "Packet₋₋Counter" is decreased instead of increased.

In the corresponding flow diagram in FIG. 12 the procedure starts in astart block 1201, whereafter it is decided in a block 1203 whether thecheck sum IHEC of the present data packet is incorrect. If this is thecase, the packet is always discarded in a block 1205 and the procedureis terminated in an end block 1207. However, if the check sum isdetermined to be correct, it is determined in a block 1209, whether thecurrently active plane is plane 1, i.e. the plane to which theillustrated procedure applies. If it is the case, the data packet isallowed to pass to the output buffer 31 in a block 1211.

If it was decided in the block 1209, that plane 1 is not active, thenplane 2 must be active and then it is to be tested whether a change ofactive plane is to be performed. It is made in a block 1213, where it isdetermined if the value of the variable "Packet₋₋ Counter" is largerthan or equal to the constant threshold vale "Threshold₋₋ Plane₋₋ 2". Ifit is decided not to be the case, no change of plane is to be performedand then the data packet is discarded in a block 1215. When instead thereply to the comparison is yes, a plane change is to be performed andthen in a block 1217 the packet is first allowed to pass to the outputbuffer 31 and then the active plane is set to be plane No. 1.

Then it is performed in a block 1219, to which the procedure continuesalso from the blocks 1211 and 1215, a test if the check sum "PEC" forthe data packet is incorrect. If it is the case, nothing more is to beperformed and the procedure is terminated in the end block 1207. Ifinstead the check sum is decided to be correct, the data packet isobviously correctly transmitted through the switch and therefore in ablock 1221 the value of "Packet₋₋ Counter" is increased. Then theprocedure is terminated in the block 1207.

The logical circuits handling the termination of the communication ofdata packets on the redundant switching planes, have the task ofdetermining, departing from two packet streams, those packets which areallowed to be forwarded. In some cases it may however be necessary tolet a superior processor force a control of the redundancy termination.An example of such a case is when performing installation work orupdates in a working system. By forcing the redundancy termination toselect packets from a particular switching plane, work may be performedon the other plane.

The forced control can be performed by providing each packet with twobits A, B, informing the logical circuits at the output side on theplane, from which the packets are to be taken. These two bits can beadded at the input to the switch 1 in the unit 7 (FIG. 4) for generationof redundancy information. The format of the data packet at its passageon the redundant planes may then be as illustrated in FIG. 11. Herethere is an extra control byte 39, containing the bits A, B.

The control bits A, B can be coded according to the following table:

    ______________________________________                                        Bit: A     B                                                                  ______________________________________                                        0      0     :     Handled by the general redundancy procedure                0      1     :     Packets are only taken from plane 2. All                                      packets from plane 1 are discarded                         1      0     :     Packets are only taken from plane 1, all                                      packets from plane 2 are discarded                         1      1     :     All packets from the two planes are allowed                                   to pass                                                    ______________________________________                                    

Since the plane choice bits A, B are carried by all packets communicatedthrough the switch 1, an arbitrary connection may be unconditionallycontrolled by a superior processor.

Control signalling from the two switching planes is an example when aforced control of the redundancy termination advantageously can be used.When the switching plane 1 wants to transmit control signals to theprocessor, it sets the plane choice bits A, B to 1 and 0 respectively.The redundancy termination will then handle these packets in a specialway according to the above. The switching plane B sets the plane choicebits A, B to 0, 1 respectively to ensure that its packets will beallowed to pass through the redundancy termination.

The redundancy termination by means of the plane choice bits aresuitably performed directly before the general termination and apossible embodiment is illustrated in FIG. 8. The plane choice bits A, Bare taken from the data packet in the register 25, and they form inputsignals to a simple logic network. From the register 25 receiving datapackets communicated on plane 1, thus the A bit is directly fed to theoutput logic 33 of this plane and signals when being high or set (=1),that the data packet in the register 25 is to be forwarded and bedirectly transferred to the output buffer 31. Further the A bit is fedafter inversion to one input of an AND-gate 39 and the B-bit withoutinversion to the other input of the AND-gate 39. On the output terminalof the AND-gate 39 a signal is then obtained which is fed to the outputlogic 39 indicating that the data packet is to be discarded without anymore testing. For the register 25 receiving packets from plane 2 thelogical network is similar except for the fact that the plane choicebits A, B are inverted in their meaning. If none of the two signals fromthis logic, i.e. that none of the direct A bit and the output signalfrom the AND-gate 33 is active or equal to one, the normal redundancytermination is to be performed, as has been described earlier.

As an alternative to the method that the plane choice bits are carriedby each data packet communicated through the switch, these bits or othercontrol flags may be stored in the memory 28, cf. FIG. 5, for eachconnection and each plane. In the processing of a communicated datapacket at the output side of the switch then these flags are read andmay as above decide the handling of the data packet. These stored planechoice flags can be placed in the memory 28 by some suitable logicalroutine performed in the selection device 27 and are not described inmore detail here.

Below is given in pseudocode the logical procedure performed by thelogic 33 for plane 1 comprising the above discussed forced controlaccording to FIG. 8.

    ______________________________________                                        Process .sub.-- Logic.sub.-- Plane.sub.-- 1                                   Begin                                                                          if(Plane.sub.-- Select==Plane.sub.-- 1) then                                                      :Forced control of                                         "Accept the packet"                                                                              :termination by means                                     endif               :of plane choice bits                                     if(Plane.sub.-- Select==Plane.sub.-- 1&2) then                                                    :A, B.                                                     "Accept the packet"                                                          endif                                                                         if(Plane.sub.-- Select==Plane.sub.-- 2) then                                   "Discard the packet"                                                         else                                                                          Begin                                                                          if(IHEC.sub.-- error) then                                                                       :For errors in IHEC                                         "Discard the packet"                                                                            :the packet is to be                                                          :always discarded.                                         else               :If plane 1 is active                                       if(Active.sub.-- Plane(n)==1) then                                                              :the packet is to be                                         "Accept the packet"                                                                            :allowed to pass.                                           else              :Plane 2 active:                                             if(Packet.sub.-- Counter(n) ≧                                                           :Check if change of                                          Threshold.sub.-- Plane 2) then                                                                 :planes is to be                                                              :made.                                                        "Accept the packet"                                                                           :Change of plane is                                           Active.sub.-- Plane(n):=1                                                                     :to be made and then                                                          :the packet is                                                                :allowed to pass.                                            else             :When plane 2 is                                              "Discard the packet"                                                                          :active and a change                                         endif            :is not made the                                            endif             :packet is discarded.                                       if(PEC.sub.-- error) then                                                      Packet.sub.-- Counter(n):=                                                                     :The packet counter                                           Packet.sub.-- Counter(n)                                                                      :is increased only                                          else              :for correct packets.                                        Packet.sub.-- Counter(n):=                                                     Packet.sub.-- Counter(n) + 1                                                endif                                                                        endif                                                                        end                                                                          end                                                                           ______________________________________                                    

The corresponding procedure for the logic of handling of data packetsfrom plane 2 is given by the following pseudo code routine:

    ______________________________________                                        Process.sub.-- Logic.sub.-- Plane.sub.-- 2                                    Begin                                                                          if(Plane.sub.-- select==Plane.sub.-- 2) then                                                      :Forced control of                                         "Accept the packet"                                                                              :termination by means                                     endif               :plane choice bits                                        if(Plane.sub.-- Select==Plane.sub.-- 1&2) then                                                    :A, B.                                                     "Accept the packet"                                                          endif                                                                         if(Plane.sub.-- Select==Plane.sub.-- 1) then                                   "Discard the packet"                                                         else                                                                          Begin                                                                          if(IHEC.sub.-- error) then                                                                       :For errors in IHEC                                         "Discard the packet"                                                                            :the packet is always                                                         :to be discarded.                                          else               :If plane 1 is                                              if(Active.sub.-- Plane(n)==2) then                                                              :active the packet is                                        "Accept the packet"                                                                            :allowed to pass.                                           else              :Plane 2 active:                                             if(Packet.sub.-- Counter(n) ≧                                                           :Test if change of                                            Threshold.sub.-- Plane.sub.-- 1) then                                                         :plane is to be                                                               :performed.                                                   "Accept the packet"                                                                           :Change of plane is                                           Active.sub.-- Plane(n):=2                                                                     :to be performed and                                                          :then the packet is                                                           :allowed to pass.                                            else             :When plane 2 is                                              "Discard the packet"                                                                          :active and a change                                         endif            :is not made, the                                           endif             :packet is discarded.                                       if(PEC.sub.-- error) then                                                      Packet.sub.-- Counter(n):=                                                                     :The packet counter                                           Packet.sub.-- Counter(n)                                                                      :is decreased only                                          else              :for correct packets.                                        Packet.sub.-- Counter(n):=                                                     Packet.sub.-- Counter(n) - 1                                                endif                                                                        endif                                                                        end                                                                          end                                                                           ______________________________________                                    

In these routines the variable "Plane₋₋ Select" is used as a collectivedesignation of the two plane choice bits A, B. Further, n signifies theconnection number of the data packet given by the contents of the field"VPI/VCI". For each connection there is then a variable "Active₋₋Plane(n)", pointing to the currently active switching plane. The packetcounter "Packet₋₋ Counter(n)" will then also be particular for eachconnection and dependent on n.

In order to agree with the first routine above for plane 1 the flowdiagram in FIG. 12 must be modified somewhat, as is illustrated in FIG.13. Some variables are to be made dependant on the connection number ofthe data packet and further the forced control is illustrated. Theblocks 1301-1321 in FIG. 13 thus coincide essentially with the blocks1201-1221 in FIG. 12. Between the start block 1301 and the block 1303 asequence is inserted starting with a block 1351, in which it isdetermined if bit A of the data packet is set. If it is decided to bethe case, the packet is always allowed to pass in a block 1353,whereafter the procedure is terminated in the end block 1307. If bit Ais not set, it is decided in a block 1355 whether bit B is set. If it isthe case, the packet is always discarded in a block 1357, after whichthe procedure is terminated in the block 1307. If instead bit B isdecided not to be set in the block 1355--and then bit A not seteither--the procedure continues to the block 1303, which coincides withthe block 1203 in FIG. 12. The blocks 1309, 1313, 1317, 1321 correspondto the blocks 1209, 1213, 1217, 1221 but apply in the respective casesonly for "this connection", i.e. the connection to which the processeddata packet belongs.

What is claimed is:
 1. In a packet switch comprising an input sideincluding an input unit for receiving a sequence of data packetsarriving at the switch; an output side including an output unit forforwarding the sequence of data packets from the switch; and at leasttwo identical switching planes, each having an input coupled to receivethe sequence of data packets from the input unit and coupled to providethe sequence of data packets to the output unit, a method forforwarding, from the output unit, the sequence of data packets,comprising the steps of:at the input unit receiving the sequence of datapackets and supplying the sequence of data packets to each of theswitching planes; at each of the switching planes, supplying thesequence of data packets to the output unit; and at the output unit, foreach arriving data packet in the sequence of data packets, selecting apreferred switching plane from the at least two identical switchingplanes, and receiving from the preferred switching plane a preferreddata packet to be forwarded from the output unit, wherein the step ofselecting comprises: generating, for each of the switching planes, acorresponding quality value based on earlier arriving data packets thathave been supplied to the output unit, the quality value indicating towhat extent the switching plane has transmitted without error, from theinput unit to the output unit, the earlier arriving data packets;usingthe quality values to select the preferred switching plane.
 2. Themethod of claim 1, wherein the step of generating a quality value for acorresponding switching plane comprises determining from the earlierarriving data packets a sequential order of the earlier arriving datapackets.
 3. The method of claim 1, wherein the step of generating aquality value for a corresponding switching plane comprises determiningfrom the earlier arriving data packets a correctness of at least onedata field inside each of the earlier arriving data packets.
 4. Themethod of claim 1, wherein the step of generating a quality value for acorresponding switching plane comprises;detecting an incorrectnessassociated with an erroneous one of the earlier arriving data packets;and in response to detecting the incorrectness, adjusting a previouslydetermined quality value to indicate a worse quality value.
 5. Themethod of claim 4, wherein the incorrectness includes the erroneous oneof the earlier arriving data packets arriving out of sequence.
 6. Themethod of claim 5, wherein the incorrectness includes the erroneous oneof the earlier arriving data packets having an incorrect data field. 7.The method of claim 1, wherein the step of using the quality values toselect the preferred switching plane includes comparing relative sizesof the corresponding quality values.
 8. The method of claim 1, whereinthe step of using the quality values to select the preferred switchingplane includes:comparing relative sizes of the corresponding qualityvalues; and selecting as the preferred switching plane a higher qualityone of the at least two switching planes, the higher quality switchingplane having a corresponding quality value that is better or higher by apredetermined amount over a corresponding quality value of a currentlypreferred switching plane.
 9. The method of claim 1, wherein the step ofgenerating a quality value for a corresponding switching planecomprises:detecting a correctness associated with a good one of theearlier arriving data packets; and in response to detecting thecorrectness, adjusting a previously determined quality value of acorresponding switching plane to indicate an improved quality value, andadjusting a previously determined quality value of a corresponding otherswitching plane to indicate a worse quality value.
 10. The method ofclaim 1, wherein the step of selecting the preferred switching plane isperformed each time a data packet is supplied to the output unit. 11.The method of claim 1, wherein the step of selecting the preferredswitching plane includes continuing to select a previously determinedpreferred switching plane until a new quality value of a correspondingother switching plane indicates higher quality, by at least apredetermined amount, than a previous quality value of the previouslydetermined preferred switching plane.
 12. The method of claim 1, whereinthe input side includes other input units in addition to the input unit,each of the other input units supplying corresponding other sequences ofdata packets to each of the switching planes, and wherein the methodfurther comprises the step of, at the output unit repeating, for eachother input unit, the step of selecting, so as to select for each otherinput unit, a corresponding other preferred switching plane from the atleast two identical switching planes.
 13. The method of claim 12,wherein for each repetition of the step of selecting, the earlierarriving data packets all originate from a corresponding same one of theother input units.
 14. The method of claim 1, wherein each data packetcommunicated through the switch belongs to a corresponding one of aplurality of established connections, and wherein the method furthercomprises the step of, at the output unit repeating, for eachestablished connection, the step of selecting, so as to select for eachestablished connection, a corresponding preferred switching plane fromthe at least two identical switching planes.
 15. The method of claim 14,wherein for each repetition of the step of selecting, the earlierarriving data packets all belong to a corresponding same one of theplurality of established connections.
 16. The method of claim 15,wherein for each connection, new quality values for the switching planesare determined each time a data packet belonging to that connection issupplied to the output unit.
 17. The method of claim 1, wherein the atleast two identical switching planes comprise only a first switchingplane and a second switching plane, and wherein the step of selectingfurther comprises combining a first quality value, corresponding to thefirst switching plane, and a second quality value, corresponding to thesecond switching plane, to produce a common quality value, and whereinthe step of using the quality values to select the preferred switchingplane comprises using the common quality value to select a preferredswitching plane, a good or high common quality value indicating that thefirst switching plane should be selected as the preferred switchingplane, and a bad or low common quality value indicating that the secondswitching plane should be selected as the preferred switching plane. 18.The method of claim 17, wherein, in response to a correct transfer of adata packet from the input unit to the output unit through the firstswitching plane, the common quality value is increased one step, andwherein, in response to a correct transfer of a data packet from theinput unit to the output unit through the second switching plane, thecommon quality value is decreased one step.
 19. The method of claim 18,wherein the first switching plane is selected as the preferred switchingplane in response to the common quality value being better or higherthan a first threshold value, the second switching plane is selected asthe preferred switching plane in response to the common quality valuebeing worse or lower than a second threshold value, and wherein thefirst threshold value is better or higher than the second thresholdvalue.
 20. The method of claim 19, wherein, when the first switchingplane is the preferred switching plane, the second switching planebecomes the preferred switching plane in response to the common qualityvalue being changed to a value that is worse or lower than the secondthreshold value, and wherein, when the second switching plane is thepreferred switching plane, the first switching plane becomes thepreferred switching plane in response to the common quality value beingchanged to a value that is better or higher than the first thresholdvalue.
 21. A data packet switch for transferring data packets,comprising:an input side including at least one input unit for receivingdata packets arriving at the switch; an output side having at least oneoutput unit; at least two identical switching planes, each coupled tothe input side and to the output side; and connection establishing meansfor establishing, through the switching planes, a connection between afirst input unit of the at least one input unit and a first output unitof the at least one output unit, whereby a data packet arriving at thefirst input unit will be transferred through each of the switchingplanes to the first output unit, wherein the first output unitincludes:forwarding means for forwarding data packets from the firstoutput unit; a plurality of buffers, each associated With acorresponding one of the switching planes, and each for storing at leastone data packet received from the corresponding one of the switchingplanes; a pointer for indicating a currently preferred one of theswitching planes; a selection device, coupled to the pointer, forselecting the preferred switching plane as a source of data packets tobe forwarded by the forwarding means; a quality determining unit,coupled to each of the switching planes, for repeatedly determining, foreach switching plane, a corresponding quality value based on earlierarriving data packets that were received on that switching plane; aplurality of quality value storing means, each corresponding to one ofthe switching planes and each coupled to the quality determining unit,for storing a corresponding quality value; pointer setting means,coupled to the plurality of quality value storing means and to thepointer, for setting the pointer to indicate the preferred switchingplane in dependence on stored quality values.
 22. The data packet switchof claim 21, wherein the quality determining unit comprises:evaluationmeans for evaluating, for each switching plane, characteristics of datapackets arriving on that switching plane, the evaluation means includingmeans for determining correctness of a sequential order in which datapackets are received from that switching plane.
 23. The data packetswitch of claim 21, wherein the quality determining unitcomprises:evaluation means for evaluating, for each switching plane,characteristics of data packets arriving on that switching plane, theevaluation means including means for determining correctness of at leastone data field inside each packet that is received from that switchingplane.
 24. The data packet switch of claim 21, wherein the qualitydetermining unit generates, in response to an incorrectness associatedwith a data packet received from one of the switching planes, a qualityvalue for that switching plane that is worse or lower than a previouslygenerated quality value for that switching plane.
 25. The data packetswitch of claim 24, wherein the quality determining unit includes meansfor determining correctness of a sequential order in which data packetsare received from one of the switching planes.
 26. The data packetswitch of claim 24, wherein the quality determining unit includes meansfor determining correctness of at least one data field inside each datapacket that is received from one of the switching planes.
 27. The datapacket switch of claim 21, wherein the pointer setting meansincludes:comparison means for comparing relative sizes of quality valuesstored in the plurality of quality value storing means; and means,coupled to the comparison means, for setting the pointer to indicate thepreferred switching plane in dependence on an output of the comparisonmeans.
 28. The data packet switch of claim 21, wherein the pointersetting means includes:comparison means for comparing relative sizes ofquality values stored in the plurality of quality value storing means;and means, coupled to the comparison means, for determining thepreferred switching plane to be that switching plane having a qualityvalue that is better or higher by a predetermined amount than apreviously determined quality value corresponding to a previouslydetermined preferred switching plane.
 29. The data packet switch ofclaim 21, wherein the selection device selects a preferred switchingplane each time a data packet is supplied to the output unit.
 30. Thedata packet switch of claim 21, wherein the plurality of bufferscomprises, for each of the switching planes, a plurality of buffers,each corresponding to one of the at least one input unit, and eachcapable of storing at least one data packet,and wherein the qualitydetermining unit determines quality values for each input unit of theswitch.
 31. The data packet switch of claim 30, wherein the pointercomprises a plurality of pointers, each associated with a correspondingone of the at least one input unit,and wherein the selection deviceselects, for receiving a data packet that passed through a particularinput unit, the preferred switching plane based on a pointer associatedwith the particular input unit.
 32. The data packet switch of claim 21,wherein the connection establishing means establishes a plurality oflogical connections through the switching planes, and assigns to eachdata packet belonging to an information message, a same one of theplurality of logical connections,and wherein each of the plurality ofbuffers comprises a buffer for each logical connection, and wherein eachof the plurality of quality value storing means comprises means forstoring a quality value for each of the plurality of logicalconnections.
 33. The data packet switch of claim 32, wherein the pointercomprises a plurality of pointers, each associated with a particular oneof the plurality of logical connections,and wherein the selection deviceselects, for receiving a data packet that passed through a particularlogical connection, the preferred switching plane based on a pointerassociated with the particular logical connection.
 34. The data packetswitch of claim 33, wherein for each of the plurality of logicalconnections, the selection device selects a corresponding preferredswitching plane each time a data packet is supplied to the output unitfrom that logical connection.
 35. The data packet switch of claim 21,wherein the quality determining unit comprises correctness determiningmeans for determining, for each switching plane, correctness of datapackets arriving on that switching plane,and wherein the qualitydetermining unit generates, in response to the correctness determiningmeans indicating correctness of an arriving data packet, a new qualityvalue for a corresponding switching plane, the new quality value beingbetter or higher than a previously generated quality value.
 36. The datapacket switch of claim 35, wherein the quality determining unitgenerates, in response to the correctness determining means indicatingcorrectness of a data packet received from the corresponding switchingplane, a second new quality value for at least one other switchingplane, the second new quality value being worse or lower than apreviously generated second quality value for the at least one otherswitching plane.
 37. The data packet switch of claim 21, wherein the atleast two identical switching planes comprise only a first switchingplane and a second switching plane,wherein the quality determining unitfurther comprises means for combining a first quality value,corresponding to the first switching plane, and a second quality value,corresponding to the second switching plane, to produce a commonquality, wherein a good or high common quality value indicates that thefirst switching plane should be selected as the preferred switchingplane, and a bad or low common quality value indicates that the secondswitching plane should be selected as the preferred switching plane. 38.The data packet switch of claim 37, wherein the quality determining unitcomprises correctness determining means for determining, for eachswitching plane, correctness of data packets arriving on that switchingplane,and wherein the quality determining unit generates, in response tothe correctness determining means indicating correctness of an arrivingdata packet from the first switching plane, a new common quality valuethat is better or higher than a previously generated common qualityvalue, and wherein the quality determining unit generates, in responseto the correctness determining means indicating correctness of anarriving data packet from the second switching plane, a new commonquality value that is worse or lower than the previously generatedcommon quality value.
 39. The data packet switch of claim 37, whereinthe pointer setting means selects the first switching plane as thepreferred switching plane in response to the common quality value beingbetter or higher than a first threshold value, and selects the secondswitching plane as the preferred switching plane in response to thecommon quality value being worse or lower than a second thresholdvalue,and wherein the first threshold value is better or higher than thesecond threshold value.
 40. The data packet switch of claim 39, wherein,the pointer setting means includes means, responsive to the firstswitching plane being the preferred switching plane and the commonquality value being changed to a value that is worse or lower than thesecond threshold value, for making the second switching plane thepreferred switching plane; andmeans, responsive to the second switchingplane being the preferred switching plane and the common quality valuebeing changed to a value that is better or higher than the firstthreshold value, for making the first switching plane the preferredswitching plane.
 41. The data packet switch of claim 21, wherein eachdata packet transferred to an output unit has control informationcontained therein, the control information relating to processing of thepacket,wherein each of the plurality of buffers includes means forextracting the control information from a data packet stored in thebuffer, and for supplying this information to the selection device, andwherein the selection device alternatively forwards the data packet,discards the data packet, or selects a data packet transferred on theswitching plane indicated by the pointer, the selection in the lattercase being made in such a way that a stream of data packets is forwardedfrom the forwarding means, the forwarded stream resembling as closely aspossible a stream of data packets that arrive at the first input unit.